741df6a1a098c4676a0e86f2b0f42c328e10b754,pcm/src/main/java/gov/samhsa/mhc/pcm/service/fhir/FhirContractServiceImpl.java,FhirContractServiceImpl,createBasicConsent,#ConsentAttestationDto#PatientProfileDto#,82

Before Change



        // specify the covered entity authorized to disclose
        // add source resource and authority reference
        Organization sourceOrganizationResource = setOrganizationProvider(consentAttestationDto.getOrgProvidersDisclosureIsMadeTo());
        sourceOrganizationResource.addIdentifier().setValue("Source Organization Details");
        contract.getContained().getContainedResources().add(sourceOrganizationResource);
        contract.addAuthority().setReference("#" + sourceOrganizationResource.getId());

        //This is required if the organization was not already added as a "contained" resource reference by the Patient
        //contract.getContained().getContainedResources().add(sourceOrganizationResource);
        // specify the provider who authored the data
        if(null == sourceOrganizationResource) {
            Practitioner sourcePractitioner = setPractitionerProvider(consentAttestationDto.getIndProvidersDisclosureIsMadeTo());
            contract.addActor().getEntity().setReference("#" + sourcePractitioner.getId());
            contract.getContained().getContainedResources().add(sourcePractitioner);
        }

After Change


        for(ConsentOrganizationalProviderDisclosureIsMadeTo orgMadeTo : consent.getOrganizationalProvidersDisclosureIsMadeTo()){
            recipientOrgMadeTo.add(orgMadeTo.getOrganizationalProvider());
        }
        Organization recipientOrganization = setOrganizationProvider(recipientOrgMadeTo, RECIPIENT_ORG_ID);
        contract.getContained().getContainedResources().add(recipientOrganization);
        contract.addAuthority().setReference("#" + recipientOrganization.getId());

        //This is required if the organization was not already added as a "contained" resource reference by the Patient
        //contract.getContained().getContainedResources().add(sourceOrganizationResource);
        // specify the provider who authored the data
        if(null == recipientOrganization) {
            Set<IndividualProvider> recipientindPermittedTo = new HashSet<IndividualProvider>();
            for(ConsentIndividualProviderDisclosureIsMadeTo indPermittedTo : consent.getProvidersDisclosureIsMadeTo()){
                recipientindPermittedTo.add(indPermittedTo.getIndividualProvider());
            }
            Practitioner recipientPractitioner = setPractitionerProvider(recipientindPermittedTo, RECIPIENT_IND_ID);
            contract.addActor().getEntity().setReference("#" + recipientPractitioner.getId());
            contract.getContained().getContainedResources().add(recipientPractitioner);
        }